#ifndef _BGAENUMS_H
#define _BGAENUMS_H

#define INVALID_ENUM_VALUE 0

#ifndef BUILD_EMBEDDED_BOGOZMA_TALK
#if BCL_USE_WINDOWS
#pragma pack(push, btalk_pack)
#pragma pack(1)
#else
#pragma pack(push, 1)
#endif
#endif

typedef struct _BtakDeviceStatus
   {
   unsigned int IsOnline : 1;
   unsigned int IsOpen : 1;
   unsigned int IsPasswordProtected : 1;
   unsigned int MiscRsvd : 5;
   unsigned int RsvdA : 8;
   unsigned int RsvdB : 8;
   unsigned int RsvdC : 8;
   } BtalkDeviceStatus;

//Common to all bogozma devices
typedef struct _BtalkDeviceInfo
   {
   unsigned long		DeviceIpAddress;
   unsigned long		DeviceSubnetMask;
   unsigned long		DeviceGateway;
   unsigned long		DevicePrimaryDNS;
   unsigned long		DeviceSecondaryDNS;
   unsigned short int	MacAddressHigh;
   unsigned long		MacAddressLow;   
   unsigned char		DeviceType;
   unsigned char		DeviceVersion;
   BtalkDeviceStatus DeviceStatus;
   unsigned char		UserDefinedName[16];
   } BtalkDeviceInfo;


#ifndef BUILD_EMBEDDED_BOGOZMA_TALK
#if BCL_USE_WINDOWS
#pragma pack(pop, btalk_pack)
#else
#pragma pack(pop)
#endif
#endif

enum enumDeviceType
   {
   eAny=1,
   eLinkoo,
   eBouboule,
   ePICDEM2,
   eLocalSerialPort
   };

//NOTE for the following Enums related to Serial Port
//We need to map their values to the Windows DCB Structure

//TBM not properly mapped
enum enumFlowControl
   {
   eNoFlowControl=0,
   eHardwareFlowControl,
   eSoftwareFlowControl
   };
enum enumDataBits
   {
   e5bits=5,
   e6bits=6,
   e7bits=7,
   e8bits=8   
   };

enum enumStopBits
   {
   e1bits=0,
   e2bits=2
   };

enum enumBaudRate
   {
   e110=110,
   e300=300,
   e1200=1200,
   e2400=2400,
   e4800=4800,
   e9600=9600,
   e19200=19200,
   e38400=38400,
   e57600=57600,
   e115200=115200
   };

enum enumParity
   {
   eNoParity=0,
   eOddParity=1,
   eEvenParity=2  
   };

#endif
